perm filename PUP1OC.PAL[11,HE]1 blob sn#656320 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979

.TITLE PUP1OC
; PUP1OC -- PUP LEVEL 1

.CSECT GLOBAL
G=.

.CSECT

; ENTRY POINT TO OPENLEVEL1SOCKET
LA1:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV %3,-(5)
	MOV #000015,%2
	MOV -2.(0),%1

	JSR %7,@G+202.
	000010
	MOV -2.(0),%1
	INC %1
	MOV #000004,%3
	MOV G+392.,%2
	JSR %7,@G+200.
	000010
	TST -4.(0)
	BEQ LA12
	MOV -2.(0),%1
	ADD #000005,%1
	MOV #000003,%3
	MOV -4.(0),%2
	JSR %7,@G+200.
	000010
LA12:
	TST -6.(0)
	BEQ LA13
	MOV -2.(0),%1
	ADD #000010,%1
	MOV #000003,%3
	MOV -6.(0),%2
	JSR %7,@G+200.
	000010
LA13:
	MOV -2.(0),%1
	ASL %1
	MOV 10.(1),%1
	BIC #000377,%1
	TST %1
	BNE LA14
	MOV -2.(0),%1
	ASL %1
	MOV 10.(1),%1
	BIC #177400,%1
	TST %1
	BNE LA14

	CLR -8.(0)
	MOV G+380.,%1
	ASL %1
	MOV (1),-8.(0)
	MOV -8.(0),%1
	ASL %1
	MOV 2.(1),%1
	SWAB %1
	CLRB %1
	MOV -8.(0),%2
	ASL %2
	ADD 4.(2),%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,10.(2)
LA14:
	MOV #000006,%1
	ADD -2.(0),%1
	ASL %1
	TST (1)
	BNE LA15
	MOV #000006,%1
	INC %1
	ADD -2.(0),%1
	ASL %1
	TST (1)
	BNE LA15
	MOV #000006,%1
	ADD -2.(0),%1
	CLR %2
	JSR %7,@G+244.
	000010
	MOV #000006,%1
	BR	LA999
LA10:
	JMP MA10
LA999:
	INC %1
	ADD -2.(0),%1
	ASL %1
	MOV -2.(0),(1)
LA15:
	MOV -2.(0),%1
	ASL %1
	MOV 16.(1),%1
	BIC #000377,%1
	TST %1
	BNE LA16
	MOV -2.(0),%1
	ASL %1
	MOV 10.(1),%1
	BIC #000377,%1
	MOV -2.(0),%2
	ASL %2
	MOV 16.(2),%2
	BIC #177400,%2
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,16.(2)
LA16:
	MOV -2.(0),%2
	MOV G+388.,%1
	JSR %7,@G+230.
	000010
LA11:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO CLOSELEVEL1SOCKET
LA2:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%2
	MOV G+388.,%1
	JSR %7,@G+238.
	000004
	TST %1
	BNE LA17
	MOV #004254,%2
	MOV -2.(0),%1
	JSR %7,@G+212.
	000004
LA17:
LA18:
	MOV -2.(0),%1
	ADD #000013,%1
	JSR %7,@LA4
	000004
	JSR %7,@G+254.
	000004
	MOV -2.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #177400,%1

	MOV -2.(0),%2
	ASL %2
	MOV 2.(2),%2
	BIC #000377,%2
	CLRB %2
	SWAB %2
	CMP %1,%2
	BNE LA18
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO FLUSHQUEUE
LA3:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	BR LA20

LA19:
	MOV -2.(0),%1
	JSR %7,@G+232.
	000010
	JSR %7,@G+306.
	000004
LA20:
	MOV -2.(0),%1
	ASL %1
	TST (1)
	BNE LA19
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO BROADCASTNEXTNET
LA5:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	BR LA22
LA21:
	MOV -4.(0),%1
	ASL %1
	TST 2.(1)
	BNE LA24
	MOV -2.(0),%1
	ASL %1
	MOV 8.(1),%1
	BIC #157777,%1
	TST %1
	BNE LA23
LA24:
	MOV -2.(0),%1
	ASL %1
	MOV -4.(0),6.(1)
	MOV -4.(0),%1
	ASL %1

	MOV 2.(1),%1
	SWAB %1
	CLRB %1
	MOV -4.(0),%2
	ASL %2
	ADD 4.(2),%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,32.(2)
	MOV -4.(0),%1
	ASL %1
	MOV 2.(1),%1
	SWAB %1
	CLRB %1
	MOV -2.(0),%2
	ASL %2
	MOV 26.(2),%2
	BIC #177400,%2
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,26.(2)
	MOV -2.(0),%1
	JSR %7,@G+320.
	000006
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	BIC #177400,%1
	MOV -4.(0),%2
	ASL %2
	MOV 20.(2),-14.(0)
	MOV %1,%2
	MOV -2.(0),%1
	JSR %7,@-14.(0)
	000006
	MOV -4.(0),%1
	ASL %1
	MOV 22.(1),-12.(0)
	MOV -2.(0),%1
	JSR %7,@-12.(0)
	000006
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5

LA22:
	JMP MA22
LA23:
	MOV -4.(0),%1
	ASL %1
	MOV (1),-4.(0)
MA22:
	TST -4.(0)
	BNE LA21
	MOV -2.(0),%1
	JSR %7,@G+306.
	000006
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SETALLOCATION
LA6:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV %3,-(5)
	MOV %4,-(5)
	CMP -6.(0),-4.(0)
	BGT LA26
	CMP -8.(0),-4.(0)
	BLE LA25
LA26:
	MOV #004255,%2
	MOV -2.(0),%1
	JSR %7,@G+212.
	000012
LA25:
	MOV -2.(0),%1
	INC %1
	MOV -4.(0),%2
	JSR %7,@LA9
	000012
	MOV -2.(0),%1
	ADD #000002,%1
	MOV -6.(0),%2
	JSR %7,@LA9
	000012
	MOV -2.(0),%1
	ADD #000003,%1
	MOV -8.(0),%2
	JSR %7,@LA9
	000012
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SETONEALLOC
LA8:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV (1),%1
	BIC #000377,%1
	CLRB %1
	SWAB %1
	MOV -4.(0),%2
	SUB %1,%2
	MOV %2,-6.(0)
	MOV -4.(0),%1
	SWAB %1
	CLRB %1
	MOV -2.(0),%2
	ASL %2
	MOV (2),%2
	BIC #177400,%2
	ADD %2,%1
	ADD -6.(0),%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,(2)
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5

MA10:

.CSECT GLOBAL


	.=G+300.
	LA1
	.=G+302.
	LA2
	.=G+318.
	LA5

.CSECT

LA4:
	LA3
LA7:
	LA6
LA9:
	LA8


.END